Many conventional network data transfer systems utilize cell relay systems to transfer data. The objective of cell relay systems is to develop a single high-speed network based on a switching and multiplexing scheme that works for all data types. Cell relay is a generic term for a packet switching protocol using fixed length packets or cells. A packet or cell is a bundle of data, usually in binary form, organized in a specific way for transmission.
A network data transfer system ordinarily involves a sending device and a receiving device. However, because the sending device usually has a different data rate/flow than the receiving device, data buffers typically are utilized. A buffer is a temporary storage location for information being sent or received and is located between two different devices that have different rates for handling the data. FIG. 1 is an example of a typical data transfer environment. This environment includes a sending device 10, a buffer 12, and a receiving device 14. The buffer 12 includes a write element 11 for writing data cells into the buffer 12 from the sending device 10 and a read element 13 for reading data cells from the buffer 12 to the receiving device 14. Basically, the buffer acts like a dam. It captures the data cells from the sending device 10 and then sends them out at a rate that can be handled by the receiving device 14.
However, conventional systems require that each data cell being transferred be completely written into the buffer 12 before it can be read out. A problem with this type of implementation is the latency involved during data transfer. Latency is the time elapsed from when the data cell first enters the system to when the data cell begins to leave the system. Another problem with the conventional implementation is the larger amount of buffer space needed to prevent over and under runs.
Accordingly, what is needed is a smaller data buffer that reduces latency during data transfer. The present invention addresses such a need.